Breakpoints are points at which your program stops whenever that points in that program is reached.
The simplest type of breakpoint breaks every time your program reaches a specified place. You can also specify a condition, a Boolean expression in your programming language, for a breakpoint. A breakpoint with a condition evaluates the expression each time your program reaches it and the program will stop only if the appropriate condition is met. You can specify break conditions by using "if" in the arguments to the "break" command. You can also change the conditions at any time with the "condition" command. However, since the "watch" command does not recognize "if", "condition" is the only way to impose a further condition on the watchpoint. You can set breakpoints in your program using the "code" command and its variants to specify the place at which your program is to stop, by line number, function name, or exact address of the program. Break conditions can have side effects and may even call functions in your program. This could be helpful in activating functions that log program progress, or to use print functions to format special data structures.
One application for breakpoint commands is compensating for one bug so you can test for another. To do this, you insert a breakpoint just after the erroneous line of code, give it a condition to detect the case in which something erroneous is done, and give it commands to assign correct values to any variables which need them. You would end with the "continue" command, so that your program does not stop, and start with the "silent" command, so that no output is produced.